[2025-09-08] WebHacking.kr 2์ผ์ฐจ

๐Ÿฆฅ ๋ณธ๋ฌธ

Challenge 24

<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 24</title>
</head>
<body>
<p>
<?php
  extract($_SERVER);
  extract($_COOKIE);
  $ip = $REMOTE_ADDR;
  $agent = $HTTP_USER_AGENT;
  if($REMOTE_ADDR){
    $ip = htmlspecialchars($REMOTE_ADDR);
    $ip = str_replace("..",".",$ip);
    $ip = str_replace("12","",$ip);
    $ip = str_replace("7.","",$ip);
    $ip = str_replace("0.","",$ip);
  }
  if($HTTP_USER_AGENT){
    $agent=htmlspecialchars($HTTP_USER_AGENT);
  }
  echo "<table border=1><tr><td>client ip</td><td>{$ip}</td></tr><tr><td>agent</td><td>{$agent}</td></tr></table>";
  if($ip=="127.0.0.1"){
    solve(24);
    exit();
  }
  else{
    echo "<hr><center>Wrong IP!</center>";
  }
?><hr>
<a href=?view_source=1>view-source</a>
</body>
</html>

extract($_SERVER) : $_SERVER ๋ฐฐ์—ด์˜ ํ‚ค๋ฅผ ๋ณ€์ˆ˜๋ช…์œผ๋กœ, value๋ฅผ ๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ๊ฐ€์ ธ์˜ด

$HTTP_USER_AGENT : User-Agent ํ—ค๋” ๊ฐ’์„ ๋‹ด์Œ

๋งจ ์ฒ˜์Œ์—๋Š” $agent๊ฐ’์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ location.href = 127.0.0.1 ์„ ์‹คํ–‰์‹œํ‚ค๋ ค๊ณ  ํ–ˆ๋‹ค.

htmlspecialchars : ๋ฌธ์ž์—ด ์•ˆ์— ์žˆ๋Š” HTML ๋ฌธ์ž๋ฅผ HTML ์—”ํ‹ฐํ‹ฐ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜

์œ„์™€ ๊ฐ™์€ ํ•จ์ˆ˜ ๋•Œ๋ฌธ์— ์ธ์ฝ”๋”ฉ๋˜์–ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์—†์—ˆ๋‹ค

ํ’€์ด ๊ณผ์ •

  1. extract($_COOKIE) ๋ฅผ ์ด์šฉํ•˜์—ฌ $REMOTE_ADDR ๊ฐ’์„ ๋ฎ์–ด ์”Œ์šด๋‹ค.
    1. ์ฟ ํ‚ค๊ฐ’์— $REMOTE_ADDR ํ‚ค ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  127.0.0.1 ์„ ์ž…๋ ฅํ•œ๋‹ค
  2. ํ•„ํ„ฐ๋ง์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ $REMOTE_ADDR ์˜ value์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.

    REMOTE_ADDR : 112277โ€ฆ00โ€ฆ00โ€ฆ1

Categories:

Updated:

Leave a comment